home *** CD-ROM | disk | FTP | other *** search
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <winb.h>
- #include <te.h>
- #include <fntb.h>
- #include <gui.h>
- #include <egb.h>
- #include <guidbg.h>
-
- //#include <snd.h>
- //#include <msdos.cf>
- //#include <loader.h>
- //#include <math.h>
- //#include <io.h>
-
- #include "KH.H"
-
- //#define DEBUG
-
- // 初期32768色パレット変換テーブル(青系メニュー色)
- unsigned int paletteTable32k[16] = {
- 0x00000000, 0x3cb73cb7, 0x37293729, 0x67f567f5,
- 0x4e734e73, 0x640f640f, 0x67396739, 0x3def3def,
- 0x14a514a5, 0x5e3b5e3b, 0x03600360, 0x00150015,
- 0x2d6b2d6b, 0x7c1f7c1f, 0x6fe06fe0, 0x7fff7fff
- };
-
- // 初期1677万色パレット変換テーブル(青系メニュー色)
- unsigned int paletteTable16m[16] = {
- 0x00000000, 0x00b02070, 0x0040c060, 0x00a0f0c0,
- 0x00909090, 0x007000c0, 0x00c0c0c0, 0x00707070,
- 0x00202020, 0x00e080b0, 0x0000d000, 0x00a00000,
- 0x00505050, 0x00f000f0, 0x0000f0d0, 0x00ffffff
- };
-
- int KH_initGuiColor(void)
- {
- // EGB_getTmenuPalette関数用
- typedef struct _TMENUCOLOR{
- unsigned int colorNo; // パレットナンバー
- char blue; // 青(0~255)
- char red; // 赤(0~255)
- char green; // 緑(0~255)
- char dummy;
- } TMENUCOLOR;
-
- typedef struct _TMENUPALETTE{
- unsigned int maxColor; // 読み取った色数
- TMENUCOLOR color[16];
- } TMENUPALETTE;
-
- TMENUPALETTE palette;
- unsigned int *table;
- unsigned int i,j;
-
- // メニュー色読み取り
- EGB_getTmenuPalette( &palette ) ;
-
- // 256色パレットテーブルの設定
- table = MG_getColorTable( 1 );
- for( i = 0 ; i < 16 ; i++ )
- {
- table[i] = i +(i << 8) +(i<<16) +(i << 24 );
- }
-
- // 32768色パレットテーブルの設定
- for( i = 0 ; i < palette.maxColor ; i++ )
- {
- #ifdef DEBUG
- printf("color16(%d)=RGB(%d,%d,%d)\n",
- palette.color[i].red,palette.color[i].green,palette.color[i].blue);
- #endif
- j = ((((palette.color[i].green+8)/8)-1)<<10)
- + ((((palette.color[i].red +8)/8)-1)<< 5)
- + (((palette.color[i].blue +8)/8)-1) ;
- #ifdef DEBUG
- printf("color(%d)=RGB(%02X:%02X:%02X)->",palette.color[i].colorNo,
- ((paletteTable32k[palette.color[i].colorNo] & 0x02E0)>> 5),
- ((paletteTable32k[palette.color[i].colorNo] & 0x7C00)>>10),
- (paletteTable32k[palette.color[i].colorNo] & 0x001F) );
- #endif
- paletteTable32k[palette.color[i].colorNo] = j +(j<<16) ;
- #ifdef DEBUG
- printf("(%02X:%02X:%02X)\n",
- ((paletteTable32k[palette.color[i].colorNo] & 0x02E0)>> 5),
- ((paletteTable32k[palette.color[i].colorNo] & 0x7C00)>>10),
- (paletteTable32k[palette.color[i].colorNo] & 0x001F) );
- #endif
- }
- table = MG_getColorTable( 2 );
- for( i = 0 ; i < 16 ; i++ )
- {
- table[i] = paletteTable32k[i];
- }
-
- // 1677万色パレットテーブルの設定(確認できず)
- for( i = 0 ; i < palette.maxColor ; i++ )
- {
- paletteTable16m[palette.color[i].colorNo] =
- (palette.color[i].blue <<16)
- + (palette.color[i].green<< 8)
- + palette.color[i].red ;
- }
- table = MG_getColorTable( 3 );
- for( i = 0 ; i < 16 ; i++ )
- {
- table[i] = paletteTable16m[i];
- }
-
- return NOERR;
- }
-